package com.ruoyi.health.mapper;

import java.util.List;
import com.ruoyi.health.domain.User;
import com.ruoyi.health.domain.Family;
import org.apache.ibatis.annotations.Mapper;

/**
 * 前台用户Mapper接口
 * 
 * @author dalian
 * @date 2023-08-06
 */
@Mapper
public interface UserMapper 
{
    /**
     * 根据【id】查询前台用户
     * 
     * @param id 前台用户主键
     * @return 前台用户
     */
    public User selectUserById(Long id);

    /**
     * 根据【手机号】查询前台用户
     *
     * @param phone 前台用户主键
     * @return 前台用户
     */
    public User selectUserByPhone(String phone);

    /**
     * 查询前台用户列表
     * 
     * @param user 前台用户
     * @return 前台用户集合
     */
    public List<User> selectUserList(User user);

    /**
     * 获取用户的当前密码
     * @param id
     * @return
     */
    User selectUserPasswordById(Long id);

    /**
     * 新增前台用户
     * 
     * @param user 前台用户
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改前台用户（手机号、密码不能修改）
     * 
     * @param user 前台用户
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 删除前台用户
     * 
     * @param id 前台用户主键
     * @return 结果
     */
    public int deleteUserById(Long id);

    /**
     * 批量删除前台用户
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserByIds(Long[] ids);


    
    /**
     * 批量新增我的家人
     * 
     * @param familyList 我的家人列表
     * @return 结果
     */
    public int batchFamily(List<Family> familyList);
    

    /**
     * 通过前台用户主键删除我的家人信息
     * 
     * @param id 前台用户ID
     * @return 结果
     */
    int deleteFamilyByUserId(Long id);

    /**
     * 批量删除我的家人
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteFamilyByUserIds(Long[] ids);

    int deleteConcernByUserIds(Long[] ids);

    /**
     * 前台用户修改密码
     * @return
     */
    int updatePassword(User user);

}
